#include <algorithm>
#include <cmath>
#include <vector>
#include <iostream>
#include <cstdio>
#include <set>
#include <map>
#include <cstdlib>
#define LL long long
#define ldb long double
const ldb eps = 1e-9;
const ldb pi = fabsl(atan2(0.0, -1.0));
const int INF = 0x7f7f7f7f;
const LL LINF = 1ll << 60;
const ldb LDINF = 1e42;
#define nextLine() {int c = 0; while ((c = getchar()) != 10 && c != EOF);}
#define addEdge(a, b) next[edges] = first[a]; first[a] = edges; end[edges] = b; edges++;
using namespace std;

int n, k, c;
int a[500];

void Load()
{
	cin >> n >> k;
	cin >> c;
	int i;
	for (i = 1; i <= c; i++)
	{
		cin >> a[i];
	}
	a[0] = 0;
	a[c + 1] = n + 1;
}


void Solve()
{
	int i;
	int res = c;
	for (i = 1; i <= c + 1; i++)
	{
		res += (a[i] - a[i - 1] - 1) / k;
	}
	cout << res;

}

int main()
{
	#ifndef ONLINE_JUDGE
	freopen("input.txt", "rt", stdin);
	freopen("output.txt", "wt", stdout);
	#endif
	Load();
	Solve();
	return 0;
}